通用参数
入参
字段 | 类型 | 说明 | 默认值 |
serviceId | long | 服务id | 101 |
uq | string | 用户输入检索值 | |
type | string | 检索类型 | 动态适配 |
queries | List<map<string, object>> | 检索条件 | [] |
filters | List<map<string, object>> | 过滤条件 | [] |
fields | array | 召回字段(正排) | [] |
page | int | 分页(页码) | 1 |
rows | int | 分页(行数) | 10 |
customConfigInfo | map<string, object> | 自定义干预配置 | {} |
debug | boolean | 调试信息 |
type字段说明
用户输入检索值与索引进行匹配的字段列表,用英文逗号分割。
示例:"index1,index2,index3"
queries&filter字段说明
联合uq
条件检索召回,queries
检索条件参与最终分数计算,filters
检索条件仅对检索的结果做过滤干预。
检索条件支持子分组,子分组之间默认是
AND
语义子分组内字段支持
_operator=AND/OR
逻辑运算符,默认是AND
语义(大小写不敏感)子分组内字段支持
_conditions=[]
嵌套子条件,子条件间逻辑关系默认继承于父分组的_operator
逻辑运算符,也可通过_conditions_operator=AND/OR
自定义,子条件用法可参考queries
参数
子分组内过检索件字段支持单值、多值及区间查询
单值:数值、字符串
多值:数值、字符串组成的数组
关系:支持
eq
、neq
、like
属性,一个字段不可配置多个(大小写不敏感)区间:支持
gt
、gte
、lt
、lte
属性,其值建议为数值类型(大小写不敏感)
示例
{
"queries":[
{
"singleQuery": "stringValue", // 单值查询
"multiQuery": ["stringValue1", "stringValue2"], // 多值查询
"logicQuery": { // 逻辑查询
"like": "prefix"
},
"rangeQuery": { // 范围查询
"gte": intValue,
"lte": intValue
},
"_conditions": [ // 嵌套子查询条件
{
"singleQuery": intValue
}
]
},
{
"_operator": "OR", // 多条件OR查询(SDK自动生成)
"singleQuery": "stringValue"
}
]
}
customConfigInfo字段说明
自定义干预配置,如果用户自定义queries检索条件,可以不用配置;如果用户希望使用算法生成的queries语法,需要传入qsp相关参数。
字段 | 类型 | 说明 |
qsp | bool | 是否开启qsp服务 |
qspSchema | List<map<string, object>> | 算法生成queries依赖的索引字段描述 |
qspSchema字段说明
qspSchema字段类型是List<map<string, object>>,每个map包含需要算法构建queries检索条件的字段描述。
字段 | 类型 | 说明 |
name | string | 索引字段名 |
type | string | 索引字段类型 |
desc | string | 索引字段描述,中文短语,10字以内 |
其中type字段与结构化信息搜索使用的引擎有关,只能出现引擎支持的类型。
出参
字段 | 类型 | 说明 | 默认值 |
requestId | string | 请求id | xxxx |
status | int | 请求结果状态 | 0 |
message | string | 响应信息 | |
data.total | int | 检索总数 | 0 |
data.docs | array(map/dict/json) | 检索结果 | [] |
debug | map<string, object> | 调试信息 |
HTTP调用
鉴权token获取
鉴权的TOKEN可通过POP SDK中的 PostMSConvSearchTokenGenerated接口获取 在获取的token值前加上"Bearer "头封装到Authorization的header中。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alinlp20200629</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.0</version>
</dependency>
public static void main(String[] args) throws Exception {
Config config = new Config();
config.setEndpoint("alinlp.cn-beijing.aliyuncs.com");
config.setAccessKeyId("xxxx");
config.setAccessKeySecret("xxxx");
Client client = new Client(config);
PostMSConvSearchTokenGeneratedResponse response = client.postMSConvSearchTokenGenerated();
System.out.println(JacksonUtils.toJson(response));
}
{
"body" : {
"code" : 200,
"data" : "OQ25BJFGnMhUJ8NWpATLfcf2VW820vzGbXP5Us/qGdtwn338qSOLwkzyCnbmBD+t7AboAuvYzp5pujlKXfy90KSAnQVVVb/v15w7K+BkozM=",
"httpStatusCode" : 200,
"requestId" : "184B7122-B9EF-14BC-B974-7D013A601FE8",
"success" : true
},
"headers" : {
"access-control-allow-origin" : "*",
"access-control-expose-headers" : "*",
"connection" : "keep-alive",
"content-length" : "217",
"content-type" : "application/json;charset=utf-8",
"date" : "Tue, 02 Jan 2024 07:32:08 GMT",
"etag" : "2khQ+DZUrns9GU5hL39GwUQ7",
"keep-alive" : "timeout=25",
"x-acs-request-id" : "184B7122-B9EF-14BC-B974-7D013A601FE8",
"x-acs-trace-id" : "ec5e93d7765a4df394f82da31c6a729e"
},
"statusCode" : 200
}
HTTP请求
请求入参
字段 | 类型 | 说明 | 默认值 |
headers | map/dict/json | 请求头信息 | {} |
Authorization | string | 鉴权信息 | Bearer toY1FWrNAjvWkOmp24+UQFIi2PsYzbhNBq+yJmzumNmXw3sro3oOt9Kde5kzLcc4 |
访问域名
https://nlp.aliyuncs.com
URL
https://nlp.aliyuncs.com/msearch/api/searchEnhance
curl -i -X POST \
-H "Content-Type:application/json" \
-H "Authorization:Bearer OQ25BJFGnMhUJ8NWpATLfcf2VW820vzGbXP5Us/qGdtwn338qSOLwkzyCnbmBD+t7AboAuvYzp5pujlKXfy90KSAnQVVVb/v15w7K+BkozM=" \
-d \
'{
"uq": "ECS管理控制台:具有交互式操作的Web服务页面",
"type": "title,content,keywords",
"serviceId":23,
"page": 1,
"rows": 5
}' \
'https://nlp.aliyuncs.com/msearch/api/searchEnhance'
{
"requestId": null,
"data": {
"total": 3,
"docs": [
{
"_rc_score": 19.05915,
"keywords": "",
"b_id": "25367",
"gmt_modified_origin": "2022-09-26 18:26:12",
"_q_score": 1.0,
"id": 0,
"_id": "0",
"title": "什么是云服务器ECS",
"_score": 19.05915,
"content":"云服务器ECS(ElasticComputeService)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(InfrastructureasaService)级别云计算服务。"
},
{
"_rc_score": 10.70154,
"keywords": "开发指南",
"b_id": "42431",
"gmt_modified_origin": "2023-01-06 11:07:33",
"_q_score": 0.5614909374237571,
"id": 37,
"_id": "37",
"title": "配置加速域名",
"_score": 10.70154,
"content": "媒体处理服务支持分发加速功能,可以对指定网站上的业务实现资源访问加速。如果您有加速需求,建议您将需要加速的网站作为源站,为其创建加速域名。"
},
{
"_rc_score": 8.819408,
"keywords": "操作指南",
"b_id": "59977",
"gmt_modified_origin": "2023-02-15 09:42:23",
"_q_score": 0.4627387895053032,
"id": 89,
"_id": "89",
"title": "突发性能实例概述",
"_score": 8.819408,
"content": "突发性能实例是一种面向入门级计算场景,应对突发性能需求的经济型实例规格。本文介绍突发性能实例规格族的特点和应用场景,以及基准性能、CPU积分、性能模式等概念,并列出了具体的实例规格。"
}
]
},
"status": 0,
"debug": null,
"message": null
}
SDK调用
Java SDK
Maven依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alinlp20200629</artifactId>
<version>2.7.2</version>
</dependency>
<!--出现java.lang.NoSuchMethodError: com.aliyun.credentials.Client.getCredential()Lcom/aliyun/credentials/models/CredentialModel;异常则引入-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>credentials-java</artifactId>
<version>0.3.0</version>
</dependency>
Java示例代码
public static void main(String[] args) throws Exception {
Config config = new Config();
config.setEndpoint("alinlp.cn-beijing.aliyuncs.com");
config.setAccessKeyId("xxxx");
config.setAccessKeySecret("xxxx");
Client client = new Client(config);
PostMSSearchEnhanceRequest postMSSearchEnhanceRequest = new PostMSSearchEnhanceRequest();
postMSSearchEnhanceRequest.setServiceId(1555L);
postMSSearchEnhanceRequest.setUq("阿里云");
postMSSearchEnhanceRequest.setPage(1);
postMSSearchEnhanceRequest.setRows(5);
postMSSearchEnhanceRequest.setType("name,title,content");
postMSSearchEnhanceRequest.setFields(Lists.newArrayList("name","title", "content"));
// 运行时参数超时设置,仅对使用了该运行时参数实例的请求有效
RuntimeOptions runtimeOptions = new RuntimeOptions();
runtimeOptions.connectTimeout = 5000;
runtimeOptions.readTimeout = 10000;
PostMSSearchEnhanceResponse response = client.postMSSearchEnhanceWithOptions(postMSSearchEnhanceRequest, runtimeOptions);
System.out.println(JacksonUtils.toJson(response));
}
响应示例:
{
"body" : {
"code" : 200,
"data" : {
"data" : {
"docs" : [
{
"_id" : "3459649677041723584_2",
"_q_score" : 1,
"_rc_score" : 11.952197,
"_score" : 11.952197,
"content" : " • 本文档仅作为用户使用阿里云产品及服务的参考性指引,阿里云以产品及服务的“现状”、“有缺陷”和“当前功能”的状态提供本文档。阿里云在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但阿里云在此明确声明对本文档内容的准确性、完整性、适用性、可靠性等不作任何明示或暗示的保证。任何单位、公司或个人因为下载、使用或信赖本文档而发生任何差错或经济损失的,阿里云不承担任何法律责任。在任何情况下,阿里云均不对任何间接性、后果性、惩戒性、偶然性、特殊性或刑罚性的损害,包括用户使用或信赖本文档而遭受的利润损失,承担责任(即使阿里云已被告知该等损失的可能性)。 • 阿里云网站上所有内容,包括但不限于著作、产品、图片、档案、资讯、资料、网站架构、网站画面的安排、网页设计,均由阿里云和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权、商业秘密等。非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : ""
},
{
"_id" : "3459649677041723584_3",
"_q_score" : 0.98918508454972753,
"_rc_score" : 11.822934999999999,
"_score" : 11.822934999999999,
"content" : "非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容。此外,未经阿里云事先书面同意,任何人不得为了任何营销、广告、促销或其他目的使用、公布或复制阿里云的名称(包括但不限于单独为或以组合形式包含“阿里云”、“Aliyun”、“万网”等阿里云和/或其关联公司品牌,上述品牌的附属标志及图案或任何类似公司名称、商号、商标、产品或服务名称、域名、图案标示、标志、标识或通过特定描述使第三方能够识别阿里云和/或其关联公司)。 • 如若发现本文档存在任何错误,请与阿里云取得联系",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : ""
},
{
"_id" : "3459649677041723584_4",
"_q_score" : 0.96916625453880978,
"_rc_score" : 11.583665999999999,
"_score" : 11.583665999999999,
"content" : " 阿里云文字识别OCR 阿里云文字识别OCR/目录 文档版本:20230509 3 目录 法律声明.................................................................................................................................................................................... 2 目录 3 前言 4 概述................................................................................................................................................................................................................4",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : ""
},
{
"_id" : "3459649677041723584_73",
"_q_score" : 0.96650933715366305,
"_rc_score" : 11.551909999999999,
"_score" : 11.551909999999999,
"content" : "支持同一文件或图片内卡证票据混贴检测、识别,能够实现在财务票据混贴、个人证照混贴等场景下的自动分类、关键有效信息精准识别和结构化提取,极大提升 OCR能力在财务自动化、办公自动化及各类行业应用中的技术效能。 阿里云文字识别OCR 阿里云文字识别OCR/产品功能 文档版本:20230509 30 阿里云文字识别OCR 阿里云文字识别OCR/产品规格 文档版本:20230509 31 3. 产品规格",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : "电子面单识别 ii.混贴票据识别"
},
{
"_id" : "3459649677041723584_42",
"_q_score" : 0.93509536363900292,
"_rc_score" : 11.176444,
"_score" : 11.176444,
"content" : "精准识别银行开户许可证中的账号、核准号、企业名称、法人姓名以及开户行等关键信息。 阿里云文字识别OCR 阿里云文字识别OCR/产品功能 文档版本:20230509 15",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : "银行开户许可证识别"
}
],
"total" : 108
},
"requestId" : "F861AC34-7F30-15A6-AE92-FD788525036F",
"status" : 0
},
"httpStatusCode" : 200,
"requestId" : "F861AC34-7F30-15A6-AE92-FD788525036F",
"success" : true
},
"headers" : {
"access-control-allow-origin" : "*",
"access-control-expose-headers" : "*",
"connection" : "keep-alive",
"content-type" : "application/json;charset=utf-8",
"date" : "Tue, 02 Jan 2024 07:18:54 GMT",
"keep-alive" : "timeout=25",
"transfer-encoding" : "chunked",
"vary" : "Accept-Encoding",
"x-acs-request-id" : "F861AC34-7F30-15A6-AE92-FD788525036F",
"x-acs-trace-id" : "e6e485a286ccb89ce0008022f62682c9"
},
"statusCode" : 200
}
Python SDK
pip源
pip install alibabacloud_alinlp20200629==2.8.2
Python示例代码
import json
from alibabacloud_alinlp20200629 import client
from alibabacloud_tea_openapi import models as api_models
from alibabacloud_tea_util.models import RuntimeOptions
from alibabacloud_alinlp20200629 import models
import os
def searchEnhance():
config = api_models.Config(access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
region_id="cn-beijing")
nlp_client = client.Client(config)
request = models.PostMSSearchEnhanceRequest()
request.service_id = 1555
request.uq = '阿里云'
request.page = 1
request.rows = 5
request.type = "name,title,content"
runtime_options = RuntimeOptions(connect_timeout=5000, read_timeout=10000)
response = nlp_client.post_mssearch_enhance_with_options(request, runtime_options)
# python2: print(response)
print(json.dumps(response.body.data, ensure_ascii=False))
{
"data" : {
"docs" : [
{
"_id" : "3459649677041723584_2",
"_q_score" : 1,
"_rc_score" : 11.952197,
"_score" : 11.952197,
"chunkId" : "3459649677041723584_2",
"content" : " • 本文档仅作为用户使用阿里云产品及服务的参考性指引,阿里云以产品及服务的“现状”、“有缺陷”和“当前功能”的状态提供本文档。阿里云在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但阿里云在此明确声明对本文档内容的准确性、完整性、适用性、可靠性等不作任何明示或暗示的保证。任何单位、公司或个人因为下载、使用或信赖本文档而发生任何差错或经济损失的,阿里云不承担任何法律责任。在任何情况下,阿里云均不对任何间接性、后果性、惩戒性、偶然性、特殊性或刑罚性的损害,包括用户使用或信赖本文档而遭受的利润损失,承担责任(即使阿里云已被告知该等损失的可能性)。 • 阿里云网站上所有内容,包括但不限于著作、产品、图片、档案、资讯、资料、网站架构、网站画面的安排、网页设计,均由阿里云和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权、商业秘密等。非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容",
"docId" : "3459649677041723584",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : "",
"url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
},
{
"_id" : "3459649677041723584_3",
"_q_score" : 0.98918508454972753,
"_rc_score" : 11.822934999999999,
"_score" : 11.822934999999999,
"chunkId" : "3459649677041723584_3",
"content" : "非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容。此外,未经阿里云事先书面同意,任何人不得为了任何营销、广告、促销或其他目的使用、公布或复制阿里云的名称(包括但不限于单独为或以组合形式包含“阿里云”、“Aliyun”、“万网”等阿里云和/或其关联公司品牌,上述品牌的附属标志及图案或任何类似公司名称、商号、商标、产品或服务名称、域名、图案标示、标志、标识或通过特定描述使第三方能够识别阿里云和/或其关联公司)。 • 如若发现本文档存在任何错误,请与阿里云取得联系",
"docId" : "3459649677041723584",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : "",
"url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
},
{
"_id" : "3459649677041723584_4",
"_q_score" : 0.96916625453880978,
"_rc_score" : 11.583665999999999,
"_score" : 11.583665999999999,
"chunkId" : "3459649677041723584_4",
"content" : " 阿里云文字识别OCR 阿里云文字识别OCR/目录 文档版本:20230509 3 目录 法律声明.................................................................................................................................................................................... 2 目录 3 前言 4 概述................................................................................................................................................................................................................4",
"docId" : "3459649677041723584",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : "",
"url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
},
{
"_id" : "3459649677041723584_73",
"_q_score" : 0.96650933715366305,
"_rc_score" : 11.551909999999999,
"_score" : 11.551909999999999,
"chunkId" : "3459649677041723584_73",
"content" : "支持同一文件或图片内卡证票据混贴检测、识别,能够实现在财务票据混贴、个人证照混贴等场景下的自动分类、关键有效信息精准识别和结构化提取,极大提升 OCR能力在财务自动化、办公自动化及各类行业应用中的技术效能。 阿里云文字识别OCR 阿里云文字识别OCR/产品功能 文档版本:20230509 30 阿里云文字识别OCR 阿里云文字识别OCR/产品规格 文档版本:20230509 31 3. 产品规格",
"docId" : "3459649677041723584",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : "电子面单识别 ii.混贴票据识别",
"url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
},
{
"_id" : "3459649677041723584_42",
"_q_score" : 0.93509536363900292,
"_rc_score" : 11.176444,
"_score" : 11.176444,
"chunkId" : "3459649677041723584_42",
"content" : "精准识别银行开户许可证中的账号、核准号、企业名称、法人姓名以及开户行等关键信息。 阿里云文字识别OCR 阿里云文字识别OCR/产品功能 文档版本:20230509 15",
"docId" : "3459649677041723584",
"name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
"title" : "银行开户许可证识别",
"url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
}
],
"total" : 108
},
"requestId" : "891CB7AB-5773-132F-B03D-589A3D2A6C7E",
"status" : 0
}